home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / c / msdos / mv.doc < prev    next >
Text File  |  1986-09-11  |  10KB  |  292 lines

  1. Date: Fri, 29 Aug 86 01:18:20 cdt
  2. From: Peter Wu <pwu@unix.macc.wisc.edu>
  3. Message-Id: <8608290618.AA00716@unix.macc.wisc.edu>
  4. To: info-ibmpc-request@mosis
  5. Subject: wmv12doc.txt
  6.  
  7.  
  8. MV - move/rename files or subdirectories for PC DOS 2.xx and 3.xx;
  9.      version 1.20
  10.  
  11.  
  12. SYNTAX
  13.  
  14. MV [source1] [source2] ... [sourceN] [destination]
  15.  
  16. Each [source] can specifies files or directories; wildcards are
  17. accepted.
  18.  
  19. Typing MV without parameters will print a short help message,
  20. the version number, and the author's email addresses.
  21.  
  22.  
  23. OPTION
  24.  
  25. Each [source] can be followed by a file-type option. There are 
  26. three such options: 
  27.  
  28.   /f - select files
  29.   /d - select sub-directories (same effect as \.)
  30.   /h - select hidden files/sub-directories                      
  31.   /i - ask for confirmation to move for each file/sub-directory
  32.  
  33. Options can be combined, like /hf for hidden and visible files. 
  34. If neither /f or /d is specified, /fd (files and sub-directories) 
  35. is used. If /h is not specified, hidden files/sub-directories are 
  36. not moved. There should be no space between a source and its 
  37. file-type option. So "*.*/f" is ok, but "*.* /f" is not. 
  38.  
  39.  
  40. EXAMPLE
  41.  
  42. Assume your directory looks like this:
  43.  
  44.     TROUT   .CAT
  45.     MOTHER  .
  46.     BILLARD .COM
  47.     MOVIE   .XXX <HIDDEN FILE>
  48.     COMPUTER.TXT
  49.     LITTER  .
  50.     TRASHCAN     <DIR>
  51.     DOS          <DIR>
  52.     ANIMAL       <DIR>
  53.  
  54. Each of the following examples are independent from the
  55. others:
  56.  
  57.   MV trout.cat cat.exe        -- renames trout.cat to cat.exe
  58.  
  59.   MV litter trashcan          -- moves litter into trashcan
  60.  
  61.   MV dos don'ts               -- renames dos to don'ts
  62.  
  63.   MV *.* animal               -- moves all five files, trashcan, 
  64.                                  and dos into animal.
  65.  
  66.   MV dos animal               -- moves dos into animal
  67.  
  68.   MV billard.com computer.txt animal -- moves billard.com and
  69.                                  computer.txt into animal
  70.  
  71.   MV trashcan trout.cat dos   -- moves trashcan and trout.cat
  72.                                  into dos
  73.  
  74.   MV *. trashcan              -- moves mother, litter, dos, and 
  75.                                  animal into trashcan. Trashcan 
  76.                                  itself is not moved to prevent a 
  77.                                  directory loop.
  78.  
  79.   MV mother animal\.          -- moves mother into animal. The
  80.                                  "\." following animal says
  81.                                  explicitly that animal is a sub-
  82.                                  directory, and if mv doesn't
  83.                                  find that directory, then you
  84.                                  get an error message. This is a
  85.                                  good way to move things into an
  86.                                  existing sub-directory without
  87.                                  accidentally renaming files
  88.                                  if you mistype the destination
  89.                                  name.
  90.  
  91.   MV mother litter            -- error. You cannot rename mother
  92.                                  to litter because litter exists
  93.                                  already. If you really want to
  94.                                  do this, you have to delete
  95.                                  litter first.
  96.  
  97.   MV */d animal, or
  98.   MV *\. animal               -- moves trashcan and dos into
  99.                                  animal. The "*/d" or "*\." says 
  100.                                  match all sub-directories with 
  101.                                  no extension. Animal itself is 
  102.                                  not moved to prevent a directory 
  103.                                  loop. 
  104.  
  105.   MV *.*/f dos                -- moves all files (trout.cat, 
  106.                                  mother, billard.com, 
  107.                                  computer.txt, and litter) into 
  108.                                  dos
  109.  
  110.   MV *.*/h animal             -- moves all files and sub-
  111.                                  directories, hidden and visible 
  112.                                  ones (trout.cat, mother, 
  113.                                  billard.com, movie.xxx, 
  114.                                  computer.txt, litter, trashcan, 
  115.                                  and dos), to animal 
  116.  
  117.   MV *.*/hf animal            -- moves all files, hidden and 
  118.                                  visible ones (trout.cat, mother, 
  119.                                  billard.com, movie.xxx, 
  120.                                  computer.txt, and litter), to 
  121.                                  animal 
  122.  
  123.  
  124. MORE DETAIL
  125.  
  126. MV is like the mv program on UNIX (trademark of AT&T Bell Labs.) 
  127. It moves files/sub-directories within a physical disk. This is 
  128. done by manipulating directory entries and not by copying and 
  129. deleting files. The advantage is that it's fast and non-
  130. recursive: moving a sub-directory containing six hundred files 
  131. takes the same amount of time as it takes to move an empty sub-
  132. directory. 
  133.  
  134. The disadvantage is that you cannot move files/sub-directories 
  135. from one physical drive to another. To do so you must copy and 
  136. then delete; MV doesn't help in this case. 
  137.  
  138. In addition to normal physical disks, MV also works on
  139.  
  140.   1) 'Join'-ed disks; of course you still cannot move things
  141.      across different physical disks.
  142.  
  143.   2) 'Subst'-ed disks.
  144.  
  145. The above 'disks' can be created in DOS 3.xx.
  146.  
  147. MV will not work on shared disk across the network. If you
  148. attempt to use it this way, you will get the message 'sorry, mv
  149. doesn't work on network disks.'
  150.  
  151. When MV is writing to the disk, it will ignore the break key. 
  152. This is to prevent you from messing up the disk. If you press the 
  153. break key while running MV, the program might not stop 
  154. immediately, but it will eventually -- after it's done writing to 
  155. the disk. However, you can still mess up your disk by rebooting 
  156. or turning off your computer while running MV. So be careful:
  157. DO NOT STOP mv BY REBOOTING OR TURNING YOUR COMPUTER OFF; if you  
  158. must stop MV, use the break key.
  159.  
  160.  
  161. WARNING
  162.  
  163. Since MV uses some undocumented DOS calls and also writes disk 
  164. sectors directly (three sectors per sub-directory moved), it is 
  165. potentially hazardous to your disks. However, I have compensated 
  166. for this by including some redundant checking in the program and 
  167. by doing a lot of testing with it.
  168.  
  169. MV has been tested on the following systems:
  170.  
  171.   1) DOS 3.20 on AT with floppy disks (double and high density),
  172.      fixed disks, vdisk, and 'subst' disk.
  173.  
  174.   2) DOS 3.10 on Zenith 148, 158 with floppy disks (double 
  175.      density).
  176.  
  177.   3) DOS 3.20 on XT with floppy disks (double density and 3.5")
  178.      and fixed disk.
  179.    
  180.   4) DOS 3.20 on PC convertible with 3.5" floppy disks.
  181.  
  182.   5) DOS 2.11 on Leading Edge model D with floppy disks.
  183.  
  184.   6) DOS 2.10 on PC with floppy disks.
  185.  
  186.   7) DOS 2.11 on AT&T 6300 with floppy disks.
  187.  
  188.   8) DOS 2.02 on Compaq with floppy disks.
  189.  
  190. At first, I regularly ran chkdsk to make sure MV did not screw up 
  191. the disks, but now I only run chkdsk occasionally because MV has 
  192. never screwed up any disk, ever since I started writing it.
  193.  
  194. If you have a system quite different from the above ones, test MV 
  195. on a floppy disk before using it on fixed disks. And for the 
  196. first few times you use MV, it's a good idea to run chkdsk right 
  197. afterwards. You should also run chkdsk once BEFORE you try MV, to 
  198. make sure you are starting with a 'clean' disk so you don't blame 
  199. MV incorrectly for messing up your disks. 
  200.  
  201. I have tried my best to prevent you from getting internal error 
  202. messages. But if you do see one, don't panic, your disk is 
  203. probably not harmed, except when the message tells you to run 
  204. chkdsk, then panic. Hopefully this will not happen -- it has 
  205. never happened to me. 
  206.  
  207.  
  208. BUGS
  209.  
  210. Won't work on network disks.
  211. Won't work on "E-disk" under DOS 2.02 on Compaq.
  212.  
  213. If you discover other bugs, please let me know.
  214.  
  215.  
  216. ALGORITHM
  217.  
  218. Files move/rename are done with DOS function call 56H.
  219.  
  220. Moving sub-directories (say MV A B/A) involves the following 
  221. steps:
  222.  
  223.   1) mkdir "B/A"
  224.   2) swap the starting cluster pointer of "A" and "B/A"
  225.   3) make "B/A"'s parent directory pointer point to "B"
  226.  
  227.  
  228. COMPILING
  229.  
  230. A make file comes with the source. To compile the source, simply
  231. type "make mv". The sources are intended for the IBM C compiler
  232. version 1.0 or Microsoft C compiler version 3.0. If you use
  233. Microsoft C compiler version 4.0, you have to edit the front.c
  234. module to reverse the order of the parameters to the "rename"
  235. function.
  236.  
  237.  
  238. GUARANTEE
  239.  
  240. This program comes with no guarantee. Standard disclaimer: use it
  241. at your own risks; neither I nor my employer is responsible for 
  242. any consequence caused by the use of this program.
  243.  
  244. Since the program comes with source, it is up to you to examine 
  245. the source to determine whether you want to use the program or 
  246. not. 
  247.  
  248.  
  249. DISTRIBUTION
  250.  
  251. Please distribute this program for free and include all 
  252. unmodified source code.
  253.  
  254. I will put the latest version of MV on the following bulletin 
  255. boards (look for wmv??src.arc, wmv??exe.arc, and wmv??doc.txt.
  256. ?? is the version number): 
  257.  
  258.   1) INFO-IBMPC at MOSIS (for Arpanet users). Sources and
  259.      document only.
  260.  
  261.   2) CompuServe, in IBMSW's data library.
  262.  
  263.   3) MACC's public BBS (608-262-3057) under IBMUTL.
  264.  
  265.  
  266. ACKNOWLEDGEMENT
  267.  
  268. Many volunteers on Usenet have helped me tested MV on their 
  269. systems. The following ones are especially helpful: 
  270.  
  271.   Scott Rose
  272.   Mr. Video
  273.   David Dyck
  274.   John P. Nelson 
  275.  
  276.  
  277. AUTHOR
  278.  
  279. Peter Wu
  280. Faculty Support Center, MACC
  281. Madison, WI 53706
  282.  
  283. Arpanet: pwu@unix.macc.wisc.edu
  284. Bitnet: WU at WISVMACC
  285. CompuServe: 76377,1332
  286. UUCP: ..{akgua|seismo|harvard|ucbvax|allegra}!uwvax!uwmacc!pwu
  287.  
  288. Suggestions, comments, and bug reports are welcome. I especially 
  289. like to know other ways to move sub-directories and tests to 
  290. prevent users from creating directory-loop.
  291.  
  292.